package com.ruoyi.qywx.service.inters;

import com.ruoyi.qywx.entity.ContactEntity;
import com.ruoyi.qywx.getway.entity.QyContact;
import com.ruoyi.qywx.entity.Dept;
import com.ruoyi.qywx.model.vo.ContactVo;
import com.ruoyi.qywx.model.vo.DeptVo;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author : hcl
 * @Date : 2023/8/9 16:58
 * 企业微信员工service
 * 部门查询也存放在这
 */
public interface ContactService {
    /**
     * 获取项目所有部门
     *
     * @param teamId 项目id
     */
    List<Dept> selectTeamDept(Long teamId);

    /**
     * 获取子部门
     *
     * @param parentId 父部门ID 0 或null 时，获取当前team所有部门
     */
    List<DeptVo> deptList(Long parentId, Long teamId);

    void createUsers(List<ContactEntity> contactEntities);

    void createUser(ContactEntity contactEntity);

    void updateUser(ContactEntity turnContactEntity);

    void deleteUser(String userId, Long teamId);

    /**
     * 查询员工 并转成 userId:姓名的Map返回
     */
    Map<String, String> contactNamesMap(Collection<String> userIds, Long teamId);

    List<ContactEntity> selectContactByIds(Collection<String> userIds, Long teamId);

    /**
     * 根据项目id 、部门id、员工姓名筛选
     *
     * @param deptId
     * @param name
     * @param teamId
     */
    List<ContactVo> contactList(Long deptId, String name, Long teamId);

}
